home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
ada
/
gnat1793.zip
/
features
next >
Wrap
Text File
|
1994-06-22
|
14KB
|
371 lines
GNAT IMPLEMENTED FEATURES LIST
Current as of 5/10/94
Here is the list of implemented and not implemented features. A more precise
description of the GNAT system is provided in the file 'gnat-intro', which is
part of the GNAT distribution.
Features added since GNAT version 1.78
=======================================================================
The list of features has been reorganized into one list according
to the reference manual. Things listed are implemented unless specifically
listed as not being implemented.
Some limited tasking on the Sparc SunOS version only. OS/2 version to
follow in a few weeks. (See more detailed list of tasking features below)
More complete documentation of cross referencer (see gnat-intro for details)
access discriminants
derived enumeration types (exception from type Character)
gnatsplit tool -- to deal with files containing several compilation units.
gkrunch utility
8 character file names for RTL files to help GNAT on DOS and OS/2
running under the FAT.
Generic Renaming
Min and Max attributes
Intrinsic Functions (see section in gnat-intro for more details)
String Handling
The Package Strings
The Package Strings.Maps
Fixed-Length String Handling
Bounded-Length String Handling
Unbounded-Length String Handling
String-Handling Sets and Mappings
=======================================================================
Status of Features
------------------
The parser is a full Ada9X parser, which implements the Ada 9X language
as defined by version 4.0 of the Draft International Standard. Semantic
analysis and code generation are in constant evolution.
2. Lexical Elements
2.1 Character Set
2.2 Lexical Elements, Separators, and Delimiters
2.3 Identifiers
2.4 Numeric Literals
2.4.1 Decimal Literals
2.4.2 Based Literals
2.5 Character Literals
2.6 String Literals
2.7 Comments
2.8 Pragmas
see Appendix B listing for status of Pragmas
2.9 Reserved Words
3. Declarations and Types
3.1 Declarations
3.2 Types and Subtypes
3.2.1 Type Declarations
3.2.2 Subtype Declarations
3.3 Objects and Named Numbers
3.3.1 Object Declarations
3.3.2 Number Declarations
3.4 Derived types and Classes
3.4.1 Derivation Classes
Derived types from private types (not implemented yet)
3.5 Scalar Types
Attribute 'Base 'Min 'Max
3.5.1 Enumeration Types
attributes (first, last, range, pos, val, image)
3.5.2 Character Types
attributes (first, last, range, pos, val, image)
3.5.3 Boolean Types
3.5.4 Integer Types
attributes (first, last, range, pos, val, image)
Modular Types
3.5.7 Floating Point Types
3.5.8 Operations of Floating Point Types
attributes -- see the list below attached with Appendix A
3.5.9 Fixed Point Types (not implemented yet)
3.5.10 Operations of Fixed Point Types (not implemented yet)
3.6 Array Types
3.6.1 Index Constraints and Discrete Ranges
3.6.2 Operations of Array Types
attributes first, last, range, length
3.6.3 String Types
3.7 Discriminants
3.7.1 Discriminant Constraints
3.7.2 Operations of Discriminanted Types
3.8 Record types
3.8.1 Variant Parts and Discrete Choices
3.9 Tagged Types and Type Extensions
3.9.1 Type Extensions
3.9.2 Dispatching Operations and Subprograms
3.9.3 Abstract Types and Subprograms
attribute 'Class
3.10 Access Types
3.10.1 Incomplete Type Declarations
3.10.2 Operations of Access Types
Access to subprograms
attribute 'Access
4. Names and Expressions
4.1 Names
4.1.1 Indexed Components
4.1.2 Slices
4.1.3 Selected Components
4.2 Literals
4.3 Aggregates
4.3.1 Record Aggregates
aggregates for tagged types (not implemented yet)
4.3.3 Array Aggregates
Exponentiation
Expressions (all forms)
static and dynamic concatenation
type conversions (except array conversions)
membership tests, conversion with class-wide types
5. Statements
5.1 Simple and Compound Statements - Sequences of Statements
5.2 Assignment Statements
5.3 If Statements
5.4 Case Statements
5.5 Loop Statements
5.6 Block Statements
5.7 Exit Statements
5.8 Goto Statements
6. Subprograms
6.1 Subprogram Declarations
6.2 Formal Parameter Modes
6.3 Subprogram Bodies
(6.3.1 No Conformance Rules yet)
(6.3.2 No Inline Expansion of Subprograms yet)
6.4 Subprogram Calls
6.4.1 Parameter Associations
6.5 Return Statements
6.6 Overloading of Operators
7. Packages
7.1 Package Specifications and Declarations
7.2 Package Bodies
7.3 Private Types (no private extension yet)
7.3.1 Operations of Private Types
7.4 Deferred Constants
7.5 Limited Types
7.6 User-Defined Assignment and Finalization (simple cases)
7.6.1 Completion and Finalization (simple cases)
8. Visibility Rules
8.1 Declarative Region
8.2 Scope of Declarations
8.3 Visibility
8.4 Use Clauses
8.5 Renaming Declarations
8.5.1 Object Renaming Declarations
8.5.2 Exception Renaming Declarations
8.5.3 Package Renaming Declarations
8.5.4 Subprogram Renaming Declarations
8.5.5 Generic Renaming Declarations
8.6 The Context of Overload Resolution
9. Tasks and Synchronization (Currently on Sparc SunOS verion only)
9.1 Task Units and Task Objects (and access to task)
9.2 Task Execution - Task Activation
9.3 Task Dependence - Termination of Tasks
9.4 Protected Units and Protected Objects (not implemented)
9.5 Intertask Communication
9.5.1 Protected Subprograms (not implemented)
9.5.2 Entries and Accept Statements (and entry families)
9.5.3 Entry Calls
9.5.4 Requeue Statements (not implemented)
9.6 Delay Statements, Duration, and Time (not implemented)
9.7 Select Statements
9.7.1 Selective Accept
9.7.2 Timed Entry Calls (not implemented)
9.7.3 Conditional Entry Calls
9.7.4 Asynchronous Transfer of Control (not implemented)
9.8 Abort of a Task - Abort of a Sequence of Statements (not implemented)
9.9 Task and Entry Attributes
Callable, Count, Terminated (not implemented)
9.10 Shared Variables (not implemented)
package Calendar (not implemented yet)
10. Program Structure and Compilation Issues
10.1 Separate Compilation
10.1.1 Compilation Units - Library Units
(including child units)
10.1.2 Context Clauses - With Clauses
10.1.3 Subunits of Compilation Units
10.1.4 The Compilation Process
10.1.5 Pragmas and Compilations
10.1.6 Environment-Level Visibility Rules
10.2 Program Execution
10.2.1 Elaboration Control
(pragmas Elaborate and Elaborate_All)
11. Exceptions
11.1 Exception Declarations
11.2 Exception Handlers
11.3 Raise Statements
11.4 Exception Handling
11.5 Suppressing Checks
11.6 Exceptions and Optimization
limited constraint checking on integer/enumeration types under the
following catagories:
Index Checks
Access Checks
Range Checks
Initial values in object declarations.
Assignment
parameter passing of IN parameters
type conversions
No constraint checking on floating point types or modular types.
12. Generic Units
12.1 Ge